package com.bolingcavalry.crm.serviceproblem.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.base.ResponseResult;
import com.dto.serviceproblem.ServiceProblemDTO;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.vo.ServiceProblemCountVO;
import com.vo.ServiceProblemStatusCountVO;
import com.vo.ServiceProblemVO;

import java.util.List;

public interface ServiceProblemService {
    ResponseResult add(ServiceProblemDTO serviceProblemDTO);

    ResponseResult update(ServiceProblemDTO serviceProblemDTO);

    Boolean updateStatus(Long id, Integer status);

    List<Long> batchDelete(Long[] ids);

    ServiceProblemVO getById(Long id) throws JsonProcessingException;

    IPage<ServiceProblemVO> list(Integer pageNum, Integer pageSize,
                                 String OrderNumber,
                                 String installStation,
                                 String installationLocation,
                                 String boreSize,
                                 String modelNumber,
                                 String productionNumber,
                                 String problemCategory,
                                 String startDate,
                                 String endDate,
                                 Integer status,
                                 String customerCompanyName,
                                 String faultDescription,
                                 String keyword,
                                 String createdBy);

    ServiceProblemStatusCountVO getCount();

    List<ServiceProblemCountVO> problemCategoryCount();

    ResponseResult<String> getCopyByIds(List<Long> ids);
}
